Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

epic: kmc-kmw KeymanWeb compiler in Typescript 🗜 #8954

Merged
merged 306 commits into from
Aug 7, 2023
Merged

Conversation

@mcdurdin mcdurdin added this to the A17S14 milestone Jun 7, 2023
@github-actions github-actions bot added developer/ developer/compilers/ feat epic A long lived branch, home for a new feature, usually will have child PRs based on it labels Jun 7, 2023
@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label Jun 8, 2023
mcdurdin added 3 commits June 9, 2023 13:02
…ling-and-more

chore(common): cleanup error handling for KmxFileReader and CompilerOptions as shared type
@mcdurdin mcdurdin changed the title feat: kmc-kmw KeymanWeb compiler in Typescript epic: kmc-kmw KeymanWeb compiler in Typescript Jun 9, 2023
@mcdurdin mcdurdin removed the feat label Jun 9, 2023
@mcdurdin mcdurdin changed the title epic: kmc-kmw KeymanWeb compiler in Typescript epic: kmc-kmw KeymanWeb compiler in Typescript 🗜 Jun 9, 2023
@mcdurdin mcdurdin modified the milestones: A17S14, A17S15 Jun 10, 2023
mcdurdin added 11 commits June 10, 2023 14:26
Part 1 of the `CompilerOptions` reorg. kmc now uses `CompilerOptions`
throughout, and `CompilerBaseOptions` maps to the set of options
available to all activities.
LdmlCompilerOptions is now based on the shared CompilerOptions. Also
fixes command line parameter inheritance for sub-commands.
This module is used for identification of Keyman source and binary file
formats by file extension. It is not yet appropriate to use for
constants; this will come in a future commit.
Now that we have the file type detection in place, we can replace
existing references to the file extensions, where possible, with the
constant declarations. While we could rely on TypeScript's typing to use
string-based values, this helps us to avoid using file extensions
directly in string transforms, regex, etc, and use the `KeymanFileTypes`
alias instead.

Note that only references in common/web, and kmc-* projects have been
touched. References in other Developer projects have not been touched,
as some of those are not yet ESM, so that needs to be addressed first.
feat(developer): kmc analyze osk-char-use 🗜
…-kmc-kmw

chore(developer): enable eslint for kmc-kmw 🗜
…iler-options

chore(developer): refactor CompilerOptions 🗜
@github-actions github-actions bot added the docs label Aug 1, 2023
Fixes #9377.

1. ldml_transforms.cpp used emplace_back with char instead of dword
   values (#9377)
2. import was updated to src/ instead of ../ by vscode in build.ts
   (no related issue)
chore: add run-name to deb-packaging 🗜
@github-actions github-actions bot added the linux/ label Aug 1, 2023
chore(developer): minor patches to fix compile issues 🗜
Ensures that we calculate the file type instead of using stored data,
which is a lot cleaner. Means we ignore the filetype field in the .kpj
xml, which is fine.

We should do the same with filename vs filepath.
Turns KeymanDeveloperProjectFile into an interface, and removes
redundant data in filename and fileType fields, calculating these from
filePath instead. Maintains separate KeymanDeveloperProjectFile10 and
KeymanDeveloperProjectFile20 classes implementing the base interface for
now, although that may be a target for future consolidation (lowpri).
Projects can contain any type of file, but the fromFilename file type
utility function would only handle known source and binary file types.
…ype-references

chore(developer): refactor KeymanDeveloperProjectFile 🗜
…oject-file

chore(developer): add Error_NotAProjectFile 🗜
…re-kmc-kmw-a17s18

chore: merge master into feature-kmc-kmw (A17S18) 🗜
@github-actions github-actions bot added linux/ and removed linux/ labels Aug 4, 2023
@mcdurdin mcdurdin modified the milestones: A17S18, A17S19 Aug 6, 2023
@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-missing User tests have not yet been defined for the PR label Aug 6, 2023
@mcdurdin mcdurdin marked this pull request as ready for review August 7, 2023 01:30
Copy link
Contributor

@jahorton jahorton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're going to merge this now, might want to move the last three description-list items into the third one, since its name signifies that the latter is pretty much a catch-all for post-merge stuff.

Builds are all passing, and it doesn't have a net effect on existing products quite yet. We will want testing whenever the new, TS-based tooling is integrated into Developer... but that's not quite here yet.

But, in the meantime, RSLGTM.

@mcdurdin mcdurdin merged commit 49d471b into master Aug 7, 2023
@mcdurdin mcdurdin deleted the feature-kmc-kmw branch August 7, 2023 01:38
@keyman-server
Copy link
Collaborator

Changes in this pull request will be available for download in Keyman version 17.0.156-alpha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants